package com.aegis.manage.service.auth.app;

import com.aegis.common.mybatis.model.PageResult;
import com.aegis.manage.api.request.*;
import com.aegis.manage.api.vo.ApiInfoVO;
import com.aegis.manage.api.vo.AuthPermissionTypeVO;
import com.aegis.manage.api.vo.PermissionGroupVO;
import com.aegis.manage.api.vo.ApiPermissionVO;

import java.util.List;

/**
 * @Author wuweixin
 *
 * @Version 1.0
 * @Descritube
 */
public interface AuthAppPermissionService {


    /**
     *
     * @param request
     * @return
     */
    PageResult<ApiInfoVO> queryApiPage(QueryApiPageRequest request);

    /**
     *
     * @param request
     */
    void insertApi(AddApiRequest request);

    /**
     *
     * @param request
     */
    void updateApi(UpdateApiRequest request);

    /**
     *
     * @param id
     */
    void delApi(String id);


    /**
     *
     * @param request
     * @return
     */
    PageResult<PermissionGroupVO> queryPermissionGroupPage(QueryPermissionGroupPageRequest request);

    /**
     *
     * @param request
     */
    void insertPermissionGroup(AddPermissionGroupRequest request);

    /**
     *
     * @param request
     */
    void updatePermissionGroup(UpdatePermissionGroupRequest request);

    /**
     *
     * @param id
     */
    void delPermissionGroup(String id);


    /**
     *
     * @param request
     * @return
     */
    PageResult<ApiPermissionVO> queryGroupApiPermissionPage(QueryGroupApiPermissionPageRequest request);


    /**
     *
     * @param request
     */
    void bindApiPermission(BindApiPermissionRequest request);

    /**
     *
     * @return
     */
    List<AuthPermissionTypeVO> queryPermissionType();


    /**
     *
     * @param id
     */
    void delGroupApi(String id);


}
